#pragma once

//Global header file to add universally useful defines and enums

//====================
//General Definitions
//====================
#define NULL 0
#define BUFFER_SIZE 256
#define MAX(a, b) (a > b?a:b)
#define MIN(a, b) (a < b?a:b)

//====================
//Grid Dimensions
//====================
#define WIDTH 6
#define HEIGHT 6

//====================
//Map Definitions
//====================
#define _STANDALONE_MAP_H

#define COMBO_MAX 3
#define CLICK_MAX 2

/*Author: Jared Bills*/
//Map coordinates for shapes
struct MapCoord {
	unsigned int x;
	unsigned int y;
};

/*Author: Jared Bills*/
//Combo of COMBO_MAX number of shapes grouped together, with respective coordinates
struct Combo {
	MapCoord comboCoords[COMBO_MAX];
	Shape * comboShapes[COMBO_MAX];
};

const enum ComboType {
	HORIZONTAL,
	VERTICAL,
	COMBO_SIZE,
};

//====================
//Shape Definitions
//====================
const enum ShapeType {
	PYRAMID,
	CUBE,
	SPHERE,
	STAR,
	HEXAGON,
	DIAMOND,
	SHAPE_SIZE,
	SHAPE_NONE,
};